package cn.edu.hnu.gpg.service;

import cn.edu.hnu.gpg.dao.QuestionnaireMapper;
import cn.edu.hnu.gpg.entity.Questionnaire;
import cn.edu.hnu.gpg.entity.QuestionnaireExample;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class QuestionnaireServiceImpl implements QuestionnaireService {

    private QuestionnaireMapper questionnaireMapper;

    @Autowired
    public QuestionnaireServiceImpl(QuestionnaireMapper questionnaireMapper){
        this.questionnaireMapper = questionnaireMapper;
    }

    @Override
    public List<Questionnaire> getAllQuestionnaire() {
        QuestionnaireExample questionnaireExample = new QuestionnaireExample();
        questionnaireExample.or().andQuestionIndexIsNotNull();
        List<Questionnaire> questionnaires = questionnaireMapper.selectByExample(questionnaireExample);
        return questionnaires.size() > 0 ? questionnaires : null;
    }

    @Override
    public Questionnaire findQuestionnaireByQnId(byte questionnaire_index) {
        if (questionnaire_index <= 0)
            return null;

        return questionnaireMapper.selectByPrimaryKey(questionnaire_index);
    }

    @Override
    public boolean modifyQuestion(Questionnaire questionnaire) {
        if (questionnaire == null)
            return false;

        int qn_id = questionnaireMapper.updateByPrimaryKey(questionnaire);
        return qn_id >= 1;
    }

    @Override
    public boolean modifyQuestion(byte questionnaire_index, String newQuestion, String newOptions) {
        if (questionnaire_index <= 0)
            return false;

        Questionnaire questionnaire = questionnaireMapper.selectByPrimaryKey(questionnaire_index);
        questionnaire.setQuestion(newQuestion);
        questionnaire.setOptions(newOptions);
        return questionnaireMapper.updateByPrimaryKey(questionnaire) >= 1;
    }
}
